import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

const store = new Vuex.Store({
	state: {
		// baseUrl: 'https://oa.sfc0758.com/sihui/', //正式服务器地址
		baseUrl: 'http://5gq793wi9073.vicp.fun/', //测试服务器地址
		ImageUrl: 'https://oa.sfc0758.com/',
		version: '3.6.1', //版本号,
		isShow: true,
		currentDate: '', //当天日期
	},
	mutations: {
		// 获取当天日期
		currentDateStr(state) {
			const currentDate = new Date();
			const year = currentDate.getFullYear();
			const month = (currentDate.getMonth() + 1).toString().padStart(2, '0');
			const day = currentDate.getDate().toString().padStart(2, '0');
			const date = `${year}-${month}-${day}`;
			state.currentDate = date
		},
		// formData格式请求
		formData(state, params) {
			params.show ? '' : uni.showLoading({
				title: '加载中',
				mask: true
			});

			uni.request({
				url: state.baseUrl + params.url,
				data: params.data,
				header: {
					'content-type': 'application/x-www-form-urlencoded',
					'ticket-token': uni.getStorageSync('token') ? uni.getStorageSync('token') : '',
					'userId': uni.getStorageSync('userId') ? uni.getStorageSync('userId') : ''
				},
				method: 'POST',
				success: (res) => {
					params.show ? '' : uni.hideLoading();
					if (res.data.status == 200 || res.data.code == 0) {
						params.success(res.data);
					} else if (res.data.status == 601) {
						uni.removeStorageSync('userJson')
						uni.removeStorageSync('token')
						uni.removeStorageSync('userId')
						uni.showModal({
							title: '提示',
							content: '登录超时，是否重新登录～',
							confirmText: '确定', // 自定义确定按钮的文字
							cancelText: '取消', // 自定义取消按钮的文字
							success: (res) => {
								if (res.confirm) {
									uni.navigateTo({
										url: '/pages/login/login'
									})
								} else if (res.cancel) {

								}
							}
						});
					} else {
						params.fail(res.data);

					}
				},
				fail: (res) => {
					params.show ? '' : uni.hideLoading();
					if (res.data) {
						params.fail(res.data);
					}
					uni.showToast({
						title: '请求失败，请稍后再试',
						duration: 3000,
						icon: 'none'
					});

				},
				complete: (res) => {
					params.complete(res);
					// console.log(res, "成功或失败都会返回");
				}
			});
		},
		//保存或更新
		getData(state, params) {
			params.show ? '' : uni.showLoading({
				title: '加载中',
				mask: true
			});
			uni.request({
				url: state.baseUrl + params.url,
				data: params.data,
				header: {
					'content-type': 'application/json',
					'ticket-token': uni.getStorageSync('token') ? uni.getStorageSync('token') : '',
					'userId': uni.getStorageSync('userId') ? uni.getStorageSync('userId') : ''
				},
				method: 'POST',
				success: (res) => {
					params.show ? '' : uni.hideLoading();
					if (res.data.status == 200 || res.data.code == 0) {
						params.success(res.data);
					} else if (res.data.status == 601) {
						uni.removeStorageSync('userJson')
						uni.removeStorageSync('token')
						uni.removeStorageSync('userId')
						uni.showModal({
							title: '提示',
							content: '登录超时，是否重新登录～',
							confirmText: '确定', // 自定义确定按钮的文字
							cancelText: '取消', // 自定义取消按钮的文字
							success: (res) => {
								if (res.confirm) {
									uni.navigateTo({
										url: '/pages/login/login'
									})
								} else if (res.cancel) {

								}
							}
						});
					} else {
						params.fail(res.data);

					}
				},
				fail: (res) => {
					params.show ? '' : uni.hideLoading();
					if (res.data) {
						params.fail(res.data);
					}
					uni.showToast({
						title: '请求失败，请稍后再试',
						duration: 3000,
						icon: 'none'
					});
				},
				complete: (res) => {
					params.complete(res);
					// console.log(res, "成功或失败都会返回");
				}
			});
		},

	}
})

export default store